package cn.iocoder.yudao.module.signature.validatap12status.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.Date;

/**
 * 证书详细信息 DTO
 */
@Data
@Accessors(chain = true)
@Schema(description = "证书详细信息")
public class CertInfoDTO {

    @Schema(description = "证书状态", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer status;

    @Schema(description = "证书状态名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String statusName;

    @Schema(description = "证书名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String name;

    @Schema(description = "证书序列号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String serialNumber;

    @Schema(description = "证书创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private String createTime;

    @Schema(description = "证书过期时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private String expireTime;

    @Schema(description = "证书吊销时间")
    private String revokeTime;

    @Schema(description = "证书吊销原因")
    private Integer revokeReason;

    @Schema(description = "证书剩余天数", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long remainingDays;

    @Schema(description = "证书签发者", requiredMode = Schema.RequiredMode.REQUIRED)
    private String issuer;

    @Schema(description = "证书主题", requiredMode = Schema.RequiredMode.REQUIRED)
    private String subject;

    @Schema(description = "证书版本", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer version;

    @Schema(description = "签名算法", requiredMode = Schema.RequiredMode.REQUIRED)
    private String signatureAlgorithm;

    @Schema(description = "生效时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private Date validFrom;

    @Schema(description = "失效时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private Date validTo;

    @Schema(description = "国家", requiredMode = Schema.RequiredMode.REQUIRED)
    private String country;

    /**
     * 团队ID
     */
    private String teamId;

    private Boolean matchFlag;
} 